package com.efast.dmom.equipment.opc.client;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.openscada.opc.lib.da.Group;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.Server;

public class OPCGroupBuilder {

	private HashMap<Group, Item[]> groupItems = new HashMap<Group, Item[]>();

	public void buildGroup(Server server) throws Exception {

		List<String> path = new ArrayList<String>();

		Group group3 = server.addGroup(OPCElement.GROUP3);

		path.add(OPCElement.EQUIP6_CODE);
		path.add(OPCElement.EQUIP6_NAME);
		path.add(OPCElement.EQUIP6_STATUS);
		path.add(OPCElement.EQUIP6_PID);
		path.add(OPCElement.EQUIP6_ID);

		groupItems.put(group3, buildGroupItems(group3, path));

		// Group group1 = server.addGroup(OPCElement.GROUP1);
		// Group group2 = server.addGroup(OPCElement.GROUP2);
		//
		// List<String> path = new ArrayList<String>();
		//
		// path.add(OPCElement.EQUIP1_NAME);
		// path.add(OPCElement.EQUIP1_CODE);
		// path.add(OPCElement.EQUIP1_STATUS);
		// path.add(OPCElement.EQUIP1_ID);
		// path.add(OPCElement.EQUIP1_PID);
		//
		// path.add(OPCElement.EQUIP3_NAME);
		// path.add(OPCElement.EQUIP3_CODE);
		// path.add(OPCElement.EQUIP3_STATUS);
		// path.add(OPCElement.EQUIP3_ID);
		// path.add(OPCElement.EQUIP3_PID);
		//
		// path.add(OPCElement.EQUIP4_NAME);
		// path.add(OPCElement.EQUIP4_CODE);
		// path.add(OPCElement.EQUIP4_STATUS);
		// path.add(OPCElement.EQUIP4_ID);
		// path.add(OPCElement.EQUIP4_PID);
		//
		// path.add(OPCElement.EQUIP5_NAME);
		// path.add(OPCElement.EQUIP5_CODE);
		// path.add(OPCElement.EQUIP5_STATUS);
		// path.add(OPCElement.EQUIP5_ID);
		// path.add(OPCElement.EQUIP5_PID);
		//
		// groupItems.put(group1, buildGroupItems(group1, path));
		//
		// path = new ArrayList<String>();
		// path.add(OPCElement.EQUIP2_NAME);
		// path.add(OPCElement.EQUIP2_CODE);
		// path.add(OPCElement.EQUIP2_STATUS);
		// path.add(OPCElement.EQUIP2_ID);
		// path.add(OPCElement.EQUIP2_PID);
		//
		// groupItems.put(group2, buildGroupItems(group2, path));

	}
	
	
//	protected Item getItem(String groupName, String itemName){
//	
//		Item[] items = groupItems.get(groupName);
//		
//		Arrays.ser
//	}

	private Item[] buildGroupItems(Group group, List<String> path) throws Exception {
		return OPCUtil.buildGroup(group, path);
	}

	protected HashMap<Group, Item[]> getGroupItems() {
		return groupItems;
	}

}
